home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Developer Kit / QuickTime 2.0 Developer Kit.iso / mac / MAC / Programming Stuff / Interfaces / PInterfaces / HyperXCmd.p < prev    next >
Encoding:
Text File  |  1993-11-30  |  10.7 KB  |  263 lines  |  [TEXT/MPS ]

  1. {
  2.     File:        HyperXCmd.p
  3.  
  4.     Copyright:    © 1983-1993 by Apple Computer, Inc.
  5.                 All rights reserved.
  6.  
  7.     Version:    System 7.1 for ETO #11
  8.     Created:    Tuesday, March 30, 1993 18:00
  9.  
  10. }
  11.  
  12. {$IFC UNDEFINED UsingIncludes}
  13. {$SETC UsingIncludes := 0}
  14. {$ENDC}
  15.  
  16. {$IFC NOT UsingIncludes}
  17.     UNIT HyperXCmd;
  18.     INTERFACE
  19. {$ENDC}
  20.  
  21. {$IFC UNDEFINED UsingHyperXCmd}
  22. {$SETC UsingHyperXCmd := 1}
  23.  
  24. {$I+}
  25. {$SETC HyperXCmdIncludes := UsingIncludes}
  26. {$SETC UsingIncludes := 1}
  27. {$IFC UNDEFINED UsingTypes}
  28. {$I $$Shell(PInterfaces)Types.p}
  29. {$ENDC}
  30. {$IFC UNDEFINED UsingEvents}
  31. {$I $$Shell(PInterfaces)Events.p}
  32. {$ENDC}
  33. {$IFC UNDEFINED UsingTextEdit}
  34. {$I $$Shell(PInterfaces)TextEdit.p}
  35. {$ENDC}
  36. {$IFC UNDEFINED UsingMenus}
  37. {$I $$Shell(PInterfaces)Menus.p}
  38. {$ENDC}
  39. {$IFC UNDEFINED UsingStandardFile}
  40. {$I $$Shell(PInterfaces)StandardFile.p}
  41. {$ENDC}
  42. {$SETC UsingIncludes := HyperXCmdIncludes}
  43.  
  44. CONST
  45.   { result codes }
  46.   xresSucc = 0;
  47.   xresFail = 1;
  48.   xresNotImp = 2;
  49.  
  50.   { XCMDBlock constants for event.what... }
  51.   xOpenEvt              = 1000;         { the first event after you are created }
  52.   xCloseEvt             = 1001;         { your window is being forced close (Quit?) }
  53.   xGiveUpEditEvt        = 1002;         { you are losing Edit... }
  54.   xGiveUpSoundEvt    = 1003;        { someone else is requesting HyperCard's sound channel }
  55.   xHidePalettesEvt    = 1004;        { someone called HideHCPalettes }
  56.   xShowPalettesEvt    = 1005;        { someone called ShowHCPalettes }
  57.   xEditUndo        = 1100;        { Edit——Undo }
  58.   xEditCut        = 1102;        { Edit——Cut }
  59.   xEditCopy        = 1103;        { Edit——Copy }
  60.   xEditPaste        = 1104;        { Edit——Paste }
  61.   xEditClear        = 1105;        { Edit——Clear }
  62.   xSendEvt        = 1200;        { script has sent you a message (text) }
  63.   xSetPropEvt        = 1201;        { set a window property }
  64.   xGetPropEvt        = 1202;        { get a window property }
  65.   xCursorWithin        = 1300;        { cursor is within the window }
  66.   xMenuEvt        = 1400;        { user has selected an item in your menu }
  67.   xMBarClickedEvt    = 1401;        { a menu is about to be shown--update if needed }
  68.  
  69.   xShowWatchInfoEvt    = 1501;        { for variable and message watchers }
  70.   xScriptErrorEvt    = 1502;        { place the insertion point }
  71.   xDebugErrorEvt    = 1503;        { user clicked "Debug" at a complaint }
  72.   xDebugStepEvt        = 1504;        { hilite the line }
  73.   xDebugTraceEvt    = 1505;        { same as step but tracing }
  74.   xDebugFinishedEvt    = 1506;        { script ended }
  75.  
  76.   paletteProc        = 2048;        { Windoid with grow box }
  77.   palNoGrowProc        = 2052;        { standard Windoid defproc } 
  78.   palZoomProc        = 2056;        { Windoid with zoom and grow }
  79.   palZoomNoGrow        = 2060;        { Windoid with zoom and no grow }
  80.   hasZoom        =    8;
  81.   hasTallTBar        =    2;
  82.   toggleHilite        =    1;
  83.   
  84.   maxCachedChecks    = 16;        { maximum number of checkpoints in a script }
  85.  
  86.   { paramCount is set to these constants when first calling special XThings }
  87.   xMessageWatcherID    = -2;
  88.   xVariableWatcherID    = -3;
  89.   xScriptEditorID    = -4;
  90.   xDebuggerID        = -5;
  91.  
  92.   { XTalkObjectPtr^.objectKind values }
  93.   stackObj    = 1;
  94.   bkgndObj    = 2;
  95.   cardObj    = 3;
  96.   fieldObj    = 4;
  97.   buttonObj    = 5;
  98.  
  99.   { selectors for ShowHCAlert's dialogs (shown as buttonID:buttonText) }
  100.   errorDlgID        = 1;    { 1:OK (default) }
  101.   confirmDlgID        = 2;    { 1:OK (default) and 2:Cancel }
  102.   confirmDelDlgID    = 3;    { 1:Cancel (default) and 2:Delete }
  103.   yesNoCancelDlgID    = 4;    { 1:Yes (default), 2:Cancel, and 3:No }
  104.  
  105.  
  106. TYPE
  107.   XCmdPtr   = ^XCmdBlock;
  108.   XCmdBlock = RECORD
  109.         paramCount:    INTEGER; { If = -1 then new use for XWindoids }
  110.         params:        ARRAY[1..16] OF Handle;
  111.         returnValue:     Handle; 
  112.         passFlag:    BOOLEAN;
  113.         
  114.         entryPoint:    ProcPtr; { to call back to HyperCard }
  115.         request:    INTEGER;
  116.         result:        INTEGER;
  117.         inArgs:        ARRAY[1..8] OF LongInt;
  118.         outArgs:    ARRAY[1..4] OF LongInt;
  119.           END;
  120.  
  121.   XWEventInfoPtr = ^XWEventInfo;
  122.   XWEventInfo     = RECORD
  123.              event:      EventRecord;
  124.              eventWindow: WindowPtr;
  125.              eventParams: ARRAY[1..9] OF LongInt;
  126.              eventResult: Handle;
  127.            END;
  128.           
  129.   XTalkObjectPtr = ^XTalkObject;
  130.   XTalkObject = RECORD
  131.           objectKind:   INTEGER;    { stack, bkgnd, card, field, or button }
  132.           stackNum:    LongInt;    { reference number of the source stack }
  133.           bkgndID:    LongInt;
  134.           cardID:    LongInt;
  135.           buttonID:    LongInt;
  136.           fieldID:    LongInt;
  137.         END;
  138.  
  139.   CheckPtHandle = ^CheckPtPtr;
  140.   CheckPtPtr    = ^CheckPts;
  141.   CheckPts    = RECORD
  142.                     checks: ARRAY[1..maxCachedChecks] OF INTEGER;
  143.           END;
  144.  
  145.  
  146. (****  HyperTalk Utilities  ****)
  147. FUNCTION  EvalExpr(paramPtr: XCmdPtr; expr: Str255): Handle;
  148. PROCEDURE SendCardMessage(paramPtr: XCmdPtr; msg: Str255);
  149. PROCEDURE SendHCMessage(paramPtr: XCmdPtr; msg: Str255);
  150. PROCEDURE RunHandler(paramPtr: XCmdPtr; handler: Handle);
  151.  
  152. (****  Memory Utilities  ****)
  153. FUNCTION  GetGlobal(paramPtr: XCmdPtr; globName: Str255): Handle;
  154. PROCEDURE SetGlobal(paramPtr: XCmdPtr; globName: Str255; globValue: Handle);
  155. PROCEDURE ZeroBytes(paramPtr: XCmdPtr; dstPtr: Ptr;longCount: LongInt);
  156.  
  157. (****  String Utilities  ****)
  158. PROCEDURE ScanToReturn(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  159. PROCEDURE ScanToZero(paramPtr: XCmdPtr; VAR scanPtr: Ptr);
  160. FUNCTION  StringEqual(paramPtr: XCmdPtr; str1,str2: Str255): BOOLEAN;
  161. FUNCTION  StringLength(paramPtr: XCmdPtr; strPtr: Ptr): LongInt;
  162. FUNCTION  StringMatch(paramPtr: XCmdPtr; pattern: Str255; target: Ptr): Ptr;
  163. PROCEDURE ZeroTermHandle(paramPtr: XCmdPtr; hndl: Handle);    
  164.  
  165. (****  String Conversions  ****)
  166. PROCEDURE BoolToStr(paramPtr: XCmdPtr; bool: BOOLEAN; VAR str: Str255);
  167. PROCEDURE ExtToStr(paramPtr: XCmdPtr; num: Extended80; VAR str: Str255);
  168. PROCEDURE LongToStr(paramPtr: XCmdPtr; posNum: LongInt; VAR str: Str255);
  169. PROCEDURE NumToHex(paramPtr: XCmdPtr; num: LongInt; nDigits: INTEGER; VAR str: Str255);
  170. PROCEDURE NumToStr(paramPtr: XCmdPtr; num: LongInt; VAR str: Str255);
  171. FUNCTION  PasToZero(paramPtr: XCmdPtr; str: Str255): Handle;
  172. PROCEDURE PointToStr(paramPtr: XCmdPtr; pt: Point; VAR str: Str255);
  173. PROCEDURE RectToStr(paramPtr: XCmdPtr; rct: Rect; VAR str: Str255);
  174. PROCEDURE ReturnToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
  175. FUNCTION  StrToBool(paramPtr: XCmdPtr; str: Str255): BOOLEAN;
  176. FUNCTION  StrToExt(paramPtr: XCmdPtr; str: Str255): Extended80;
  177. FUNCTION  StrToLong(paramPtr: XCmdPtr; str: Str255): LongInt;
  178. FUNCTION  StrToNum(paramPtr: XCmdPtr; str: Str255): LongInt;
  179. PROCEDURE StrToPoint(paramPtr: XCmdPtr; str: Str255; VAR pt: Point);
  180. PROCEDURE StrToRect(paramPtr: XCmdPtr; str: Str255; VAR rct: Rect);
  181. PROCEDURE ZeroToPas(paramPtr: XCmdPtr; zeroStr: Ptr; VAR pasStr: Str255);
  182.  
  183. (****  Field Utilities  ****)
  184. FUNCTION  GetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER): Handle;
  185. FUNCTION  GetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255): Handle;
  186. FUNCTION  GetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER): Handle;
  187. PROCEDURE SetFieldByID(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID: INTEGER; fieldVal: Handle);
  188. PROCEDURE SetFieldByName(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldName: Str255; fieldVal: Handle);
  189. PROCEDURE SetFieldByNum(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldNum: INTEGER; fieldVal: Handle);
  190. FUNCTION  GetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
  191.              fieldNamePtr: StringPtr): TEHandle;
  192. PROCEDURE SetFieldTE(paramPtr: XCmdPtr; cardFieldFlag: BOOLEAN; fieldID,fieldNum: INTEGER;
  193.              fieldNamePtr: StringPtr; fieldTE: TEHandle);
  194.  
  195. (****  Miscellaneous Utilities  ****)
  196. PROCEDURE BeginXSound(paramPtr: XCmdPtr; window: WindowPtr);            
  197. PROCEDURE EndXSound(paramPtr: XCmdPtr);                
  198. FUNCTION  GetFilePath(paramPtr: XCmdPtr; fileName: Str255; numTypes: INTEGER; typeList: SFTypeList;
  199.               askUser: BOOLEAN; VAR fileType: OSType; VAR fullName: Str255): BOOLEAN;
  200. PROCEDURE GetXResInfo(paramPtr: XCmdPtr; VAR resFile: INTEGER; VAR resID: INTEGER;
  201.               VAR rType: ResType; VAR name: Str255);
  202. PROCEDURE Notify(paramPtr: XCmdPtr);
  203. PROCEDURE SendHCEvent(paramPtr: XCmdPtr; event: EventRecord);    
  204. PROCEDURE SendWindowMessage(paramPtr: XCmdPtr; windPtr: WindowPtr;
  205.                 windowName: Str255; msg: Str255);
  206. FUNCTION  FrontDocWindow(paramPtr: XCmdPtr): WindowPtr;
  207. FUNCTION  StackNameToNum(paramPtr: XCmdPtr; stackName: Str255): LongInt;
  208. FUNCTION  ShowHCAlert(paramPtr: XCMDPtr; dlgID: INTEGER; promptStr: Str255): INTEGER;
  209.  
  210. (****  Creating and Disposing XWindoids  ****)
  211. FUNCTION  NewXWindow(paramPtr: XCmdPtr; boundsRect: Rect; title: Str255; visible: BOOLEAN;
  212.              procID: INTEGER; color: BOOLEAN; floating: BOOLEAN): WindowPtr;        
  213. FUNCTION  GetNewXWindow(paramPtr: XCmdPtr; templateType: ResType; templateID: INTEGER;
  214.             color: BOOLEAN; floating: BOOLEAN): WindowPtr;        
  215. PROCEDURE CloseXWindow(paramPtr: XCmdPtr; window: WindowPtr);    
  216.  
  217. (****  XWindoid Utilities  ****)
  218. PROCEDURE HideHCPalettes(paramPtr: XCmdPtr);
  219. PROCEDURE ShowHCPalettes(paramPtr: XCmdPtr);
  220. PROCEDURE RegisterXWMenu(paramPtr: XCmdPtr; window: WindowPtr; menu: MenuHandle; registering: BOOLEAN);
  221. PROCEDURE SetXWIdleTime(paramPtr: XCmdPtr; window: WindowPtr; interval: LongInt);
  222. PROCEDURE XWHasInterruptCode(paramPtr: XCmdPtr; window: WindowPtr; haveCode: BOOLEAN);
  223. PROCEDURE XWAlwaysMoveHigh(paramPtr: XCmdPtr; window: WindowPtr; moveHigh: BOOLEAN);
  224. PROCEDURE XWAllowReEntrancy(paramPtr: XCmdPtr; window: WindowPtr; allowSysEvts: BOOLEAN; allowHCEvts: BOOLEAN);
  225.  
  226. (****  Text Editing Utilities  ****)
  227. PROCEDURE BeginXWEdit(paramPtr: XCmdPtr; window: WindowPtr);            
  228. PROCEDURE EndXWEdit(paramPtr: XCmdPtr; window: WindowPtr);                
  229. FUNCTION  HCWordBreakProc(paramPtr: XCmdPtr): ProcPtr;        
  230. PROCEDURE PrintTEHandle(paramPtr: XCmdPtr; hTE: TEHandle; header: StringPtr);
  231.  
  232. (****  Script Editor support  ****)
  233. FUNCTION  GetCheckPoints(paramPtr: XCmdPtr): CheckPtHandle;    
  234. PROCEDURE SetCheckPoints(paramPtr: XCmdPtr; checkLines: CheckPtHandle);
  235. PROCEDURE FormatScript(paramPtr: XCmdPtr; scriptHndl: Handle; 
  236.                VAR insertionPoint: LongInt; quickFormat: BOOLEAN);
  237. PROCEDURE SaveXWScript(paramPtr: XCmdPtr; scriptHndl: Handle);    
  238. PROCEDURE GetObjectName(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR objName: Str255);
  239. PROCEDURE GetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; VAR scriptHndl: Handle);
  240. PROCEDURE SetObjectScript(paramPtr: XCmdPtr; object: XTalkObjectPtr; scriptHndl: Handle);
  241.  
  242. (****  Debugging Tools support  ****)
  243. PROCEDURE AbortScript(paramPtr: XCmdPtr);
  244. PROCEDURE GoScript(paramPtr: XCmdPtr);
  245. PROCEDURE StepScript(paramPtr: XCmdPtr; stepInto: BOOLEAN);
  246. PROCEDURE CountHandlers(paramPtr: XCmdPtr; VAR handlerCount: INTEGER);
  247. PROCEDURE GetHandlerInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; VAR handlerName: Str255;
  248.              VAR objectName: Str255; VAR varCount: INTEGER);
  249. PROCEDURE GetVarInfo(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
  250.              VAR varName: Str255; VAR isGlobal: BOOLEAN; VAR varValue: Str255;
  251.              varHndl: Handle);
  252. PROCEDURE SetVarValue(paramPtr: XCmdPtr; handlerNum: INTEGER; varNum: INTEGER;
  253.               varHndl: Handle);
  254. FUNCTION  GetStackCrawl(paramPtr: XCmdPtr): Handle;
  255. PROCEDURE TraceScript(paramPtr: XCmdPtr; traceInto: BOOLEAN);
  256.  
  257.  
  258. {$ENDC}    { UsingHyperXCmd }
  259.  
  260. {$IFC NOT UsingIncludes}
  261.     END.
  262. {$ENDC}
  263.